home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky07.ogg")
- local pokus = getRestartCount()
- local roompole = createArray(2)
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.cas = random(100) + 10
- room.zakaz = 0
-
- return function()
- pom2 = 99
- if no_dialog() and isReady(small) and isReady(big) then
- if room.cas > 0 then
- room.cas = room.cas - 1
- else
- room.cas = random(1000) + 600
- pom1 = roompole[1]
- if math.mod(pom1, 4) == 2 then
- if room.zakaz == 1 then
- pom1 = pom1 + 1
- end
- end
- pom2 = math.mod(pom1, 4)
- pom1 = pom1 + 1
- pom1 = math.mod(pom1, 4)
- roompole[1] = pom1
- end
- end
- switch(pom2){
- [0] = function()
- addm(7, "kni-m-svicny")
- if pokus < 3 or random(3) > 0 then
- addv(7, "kni-v-ber")
- end
- end,
- [1] = function()
- addv(7, "kni-v-prolezt")
- addm(7, "kni-m-tloustka")
- addv(7, "kni-v-padavko")
- addm(7, "kni-m-hromado")
- adddel(7)
- planBusy(big, true)
- addv(1, "kni-v-vypni")
- planBusy(big, false)
- end,
- [2] = function()
- addm(7, "kni-m-hrncirstvi")
- addv(7, "kni-v-amforstvi")
- addm(7, "kni-m-amfornictvi")
- end,
- [3] = function()
- addm(7, "kni-m-mise")
- addv(7, "kni-v-proc")
- addm(7, "kni-m-cetky")
- adddel(14)
- planBusy(small, true)
- addm(1, "kni-m-kramy")
- planBusy(small, false)
- end,
- }
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_universal()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- universal.co = 0
- universal.kdo = 0
- local treasures = {}
- for i = 0, 2 do
- treasures[i] = getModelsTable()[universal.index + i]
- end
-
- return function()
- if universal.co == 0 then
- switch(random(10)){
- [1] = function()
- universal.co = 1
- end,
- [2] = function()
- universal.co = 8
- end,
- }
- if universal.co ~= 0 then
- universal.kdo = random(3)
- end
- elseif isRange(universal.co, 1, 3) then
- treasures[universal.kdo].afaze = universal.co
- universal.co = universal.co + 1
- elseif isRange(universal.co, 4, 6) then
- treasures[universal.kdo].afaze = 7 - universal.co
- universal.co = universal.co + 1
- elseif isRange(universal.co, 8, 9) then
- treasures[universal.kdo].afaze = universal.co - 4
- universal.co = universal.co + 1
- elseif isRange(universal.co, 10, 11) then
- treasures[universal.kdo].afaze = 15 - universal.co
- universal.co = universal.co + 1
- else
- treasures[universal.kdo].afaze = 0
- universal.co = 0
- end
- treasures[universal.kdo]:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_big()
- return function()
- if big.Y < 18 then
- room.zakaz = 1
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_pc2()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- pc2.stav = 0
-
- return function()
- if pc2.stav > 0 then
- pc2.stav = pc2.stav - 1
- else
- pc2.stav = random(300) + 50
- end
- if isRange(pc2.stav, 2, 3) then
- pc2.afaze = pc2.afaze - 1
- elseif isRange(pc2.stav, 6, 7) then
- pc2.afaze = pc2.afaze + 1
- elseif pc2.stav == 8 then
- if random(2) == 1 then
- pc2.afaze = 0
- else
- pc2.afaze = 3
- end
- end
- pc2:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_switcher()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
- end
-
- -- -------------------------------------------------------------
- local function prog_init_pf2()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- pf2.afaze = random(2)
- pf2:updateAnim()
- end
-
- -- -------------------------------------------------------------
- local function prog_init_db1()
- return function()
- if db1.dir == dir_no then
- db1.afaze = 0
- else
- db1.afaze = 1
- end
- db1:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_pf1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- pf1.afaze = random(2)
- pf1:updateAnim()
- end
-
- -- -------------------------------------------------------------
- local function prog_init_db2()
- return function()
- if db2.dir == dir_no then
- db2.afaze = 0
- else
- db2.afaze = 1
- end
- db2:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_pc1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- pc1.stav = 0
-
- return function()
- if pc1.stav > 0 then
- pc1.stav = pc1.stav - 1
- else
- pc1.stav = random(300) + 50
- end
- if isRange(pc1.stav, 2, 3) then
- pc1.afaze = pc1.afaze - 1
- elseif isRange(pc1.stav, 6, 7) then
- pc1.afaze = pc1.afaze + 1
- elseif pc1.stav == 8 then
- if random(2) == 1 then
- pc1.afaze = 0
- else
- pc1.afaze = 3
- end
- end
- pc1:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_krystal()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- local crystals = {}
- for pom1 = 0, 9 do
- item = getModelsTable()[krystal.index + pom1]
- crystals[pom1] = item
- pom2 = random(7) * 4
- item.afaze = pom2
- item.glob1 = 0
- item.glob2 = pom2
- end
-
- return function()
- for key, item in pairs(crystals) do
- if item.glob1 == 0 then
- if random(25) == 1 then
- item.glob1 = item.glob1 + 1
- end
- elseif isRange(item.glob1, 1, 5) then
- item.glob1 = item.glob1 + 1
- elseif item.glob1 == 6 then
- item.glob1 = 0
- end
- if isRange(item.glob1, 0, 3) then
- pom2 = item.glob1
- elseif isRange(item.glob1, 4, 6) then
- pom2 = 7 - item.glob1
- end
- item.afaze = item.glob2 + pom2
- item:updateAnim()
- end
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_universal()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_big()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_pc2()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_switcher()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_pf2()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_db1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_pf1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_db2()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_pc1()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_krystal()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-